﻿using Microsoft.AspNetCore.Mvc;
using TeachlyQBank.DbServer;
using TeachlyQBank.Models;

namespace TeachlyQBank.Controllers
{
    public class CourseController : Controller
    {
        private readonly CourseServer _courseServer;
        public CourseController(CourseServer courseServer)
        {
            _courseServer = courseServer;
        }
        // 功能:用于跳转到添加课程页面
        // 参数:null
        // 返回：返回添加课程页面
        public IActionResult Jump()
        {
            return View("AddCourse");
        }
        // 功能:添加课程界面的添加按钮的提交
        // 参数:传递一个Course类型的数据,含有添加用的课程信息
        // 返回：返回空的当前页面,注册成功还是失败都会给出对应的提示
        public IActionResult AddCourse(Course course)
        {
            if (_courseServer.AddCourseServer(course) > 0)
            {
                TempData["Message"] = "创建成功了";
                return RedirectToAction("CourseInfo");
            }
            else
            {
                TempData["Message"] = "哎呀出现了意料之外的结果呢,添加失败";
            }
            return RedirectToAction("CourseInfo");
        }
        //功能：查询出数据库中所有课程信息
        //参数：null
        //返回：返回用户信息界面
        public IActionResult CourseInfo()
        {
            List<Course> resultList = new List<Course>();

            resultList = _courseServer.SltServer();

            //返回用户信息的视图
            return View("CourseInfo", resultList);
        }
        //功能：课程信息界面删除按钮的提交
        //参数：传递一个Course类型的数据，含有数据库影响的条数
        //返回：无论删除是否成功，返回课程信息界面
        public IActionResult DelSumbit(Course course)
        {
            if (_courseServer.DelCourseServer(course) > 0)
            {
                TempData["message"] = "删除成功";
                return RedirectToAction("CourseInfo");
            }
            //返回用户信息的视图
            return RedirectToAction("CourseInfo");
        }
        // 功能:修改课程信息界面的提交按钮
        // 参数:传递一个Course类型的数据,含有修改用的用户信息
        // 返回：返回课程信息界面,修改成功还是失败都会给出对应的提示
        public IActionResult UpdSumbit(Course course)
        {
            if (_courseServer.UpdServer(course) > 0)
            {
                TempData["Message"] = "修改成功了！";
                TempData["AutoFillAccount"] = course.course_name;
            }
            else
            {
                TempData["Message"] = "哎呀出现了意料之外的结果呢,修改失败";
            }
            return RedirectToAction("CourseInfo");
        }
        // 功能:课程信息界面的修改按钮的跳转
        // 参数:传递一个Course类型的数据,含有修改用的用户信息
        // 返回：返回课程信息修改界面
        public IActionResult UpdJump(Course course)
        {
            Course course1 = new Course();
            course1 = _courseServer.SltUpdServer(course);
            return View("EditCourse", course1);
        }
        // 功能:单个课程信息界面的查询的跳转
        // 参数:传递一个Course类型的数据,含有查询的用户信息
        // 返回：返回单个课程界面
        public IActionResult SltJump(Course course)
        {
            List<Course> resultList = new List<Course>();

            resultList = _courseServer.Slt2Server(course);

            //返回用户信息的视图
            return View("CourseInfo", resultList);
        }
    }
}
